package com.ysjy.course.mapper;

import com.wkbb.common.base.BaseMapper;
import com.wkbb.common.dto.ResultDTO;
import com.wkbb.common.dto.basic.ClassInfo;
import com.wkbb.common.dto.course.CourseClassDto;
import com.wkbb.common.dto.course.CourseTimeDto;
import com.ysjy.course.dto.AttendDto;
import com.ysjy.course.dto.TeacherCourseTimeFeedbackDto;
import com.ysjy.course.model.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface CourseClassMapper extends BaseMapper<CourseClassDto> {

    int insertClassInfo(ClassInfo classInfo);
    List<CourseClassDto> getCourseClassListByStudent(Map<String, Object> params);
    void insertClassChangeLog(ClassChangeLog classChangeLog);
    List<CourseTimeDto> getCourseTimeList(Map<String, Object> params);

    List<String> getHaveClassByMonth(Map<String, Object> params);

    int insertClassChangeApply(ClassChangeApply data);

    List<ClassChangeApply> getChangeClassApplyListByPage(Map<String, Object> params);

    ClassChangeApply findChangeClassApplyById(@Param("id") Long id);

    int updateClassChangeApply(ClassChangeApply classChangeApply);

    Map<String, Object> getCourseTimeCountByMonth(Map<String, Object> params);

    List<CourseClassDto> getCourseClassListByTeacher(Map<String, Object> params);
    CourseClassDto getCourseClassByClassId(@Param("classId") Integer classId);

    int insertMessage(YsMessage data);

    List<YsMessage> getMessageListByPage(Map<String, Object> params);

    Map<String, Object> getMessageCount(Map<String, Object> params);

    YsMessage getMessageById(@Param("id") Long id,@Param("studentId") Long studentId);

    int insertMessageState(@Param("messageId") Long messageId,@Param("studentId") Long studentId);

    int insertTeacherCourseTimeFeedback(TeacherCourseTimeFeedback data);

    int insertTeacherCourseTimeFeedbackLike(TeacherCourseTimeFeedbackLike data);

    int insertTeacherCourseTimeFeedbackComment(TeacherCourseTimeFeedbackLike data);

    List<TeacherCourseTimeFeedbackLike> getLikeListByMapParams(Map<String, Object> map);

    List<TeacherCourseTimeFeedbackDto> getTeacherCourseTimeFeedbackListByStudent(Map<String, Object> params);

    List<TeacherCourseTimeFeedbackDto> getTeacherCourseTimeFeedbackListByPage(Map<String, Object> params);
}
